package 算法.lib;

/*给你一个由 正 整数组成的数组 nums 。
如果数组中的某个子数组满足下述条件，则称之为 完全子数组 ：
子数组中 不同 元素的数目等于整个数组不同元素的数目。
返回数组中 完全子数组 的数目。
子数组 是数组中的一个连续非空序列。 */

public class CountCompleteSubarrays {
    public int countCompleteSubarrays(int[] nums) {
        int n = nums.length;
        int totalUnique = (int) java.util.stream.IntStream.of(nums).distinct().count();
        int count = 0;

        for (int i = 0; i < n; i++) {
            java.util.HashSet<Integer> unique = new java.util.HashSet<>();
            for (int j = i; j < n; j++) {
                unique.add(nums[j]);
                if (unique.size() == totalUnique) {
                    count++;
                }
            }
        }
        return count;
    }
}